你正在 VB 加油站!

最近更新

加油站台

下载区域

文档资料收集

写流言

瞧瞧流言

友情连接

写信给俺啦

 

J  程序应用

B 运行

008 VB 中调用 Word 拼写检查 98-8-14

Function CheckSpell(IncorrectText as string) as string
Dim Word As Object, retText$
On Error Resume Next
' 建立对象并打开 WORD
Set Word = CreateObject("Word.Basic")

' 把需要检查的 STRING 放到 WORD
Word.AppShow
Word.FileNew
Word.Insert IncorrectText

' 运行 WORD 拼写检查
Word.ToolsSpelling
Word.EditSelectAll

' 取返回值
retText = Word.Selection$()
CheckSpell = Left$(retText, Len(retText) - 1)

'关闭文件并回到 VB 应用
Word.FileClose 2
Show

Set Word = Nothing
End Function
到页首

007 在 VB 中控制 Word 98-8-02

Word 提供了一个 Word 对象, 通过在 “引用” 中的该对象, 可以实现对 Word 的控制。 以下的代码演示了执行 WordBasic 语句,该段代码是动态引用对象, 无须在工程中引用Word 对象。

Dim wd As Object
Set wd = CreateObject ("Word.Basic")
wd.FileNewDefault
wd.FontSize 20
wd.Insert "Hello, World"
wd.FileSaveAs "Hello.Doc"
wd.FileClose
Set wd = Nothing

执行后,将产生一个 Hello.Doc 。 一个种办法是在 Word 中调试好 WordBasic 语句后, 再发布到 VB 中。类似的处理应该也可以用在 Execl 中。
到页首

006 判断是否在 VB5 环境下运行 98-7-30

声明:
Private Declare Function GetModuleFileName Lib "kernel32" Alias _ "GetModuleFileNameA" (ByVal hModule As Long, ByVal lpFileName As _ String, ByVal nSize As Long) As Long
函数:
' True 表示在  VB5 环境下运行
Function IsRunUnderVB5() As Boolean
  Dim S As String, Length
  Length = 256
  S = String(Length, 0)
  Call GetModuleFileName(0, S, Length)
  S = Left(S, InStr(S, Chr(0)) - 1)
  IsRunUnderVB5 = UCase(Right(S, 7)) = "VB5.EXE"
End Function到页首

005 启动控制面板大全 98-8-20

启动控制面板:
Dim x
x = Shell("rundll32.exe shell32.dll,Control_RunDLL")

启动辅助选项面板:
常规:
x = Shell("rundll32.exe shell32.dll,Control_RunDLL access.cpl,,5")
显示:
x = Shell("rundll32.exe shell32.dll,Control_RunDLL access.cpl,,3")
键盘:
x = Shell("rundll32.exe shell32.dll,Control_RunDLL access.cpl,,1")
鼠标:
x = Shell("rundll32.exe shell32.dll,Control_RunDLL access.cpl,,4")
声音:
x = Shell("rundll32.exe shell32.dll,Control_RunDLL access.cpl,,2")

启动显示设置面板:
背景:
x = Shell("rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,0")
外观:
x = Shell("rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,2")
屏幕保护:
x = Shell("rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,1")
设置:
x = Shell("rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,3")
启动日期和时间设置:
x = Shell("rundll32.exe shell32.dll,Control_RunDLL timedate.cpl")

98-7-04:打开拨号连接:
x= Shell("rundll32.exe rnaui.dll,RnaDial "  &  "连接_名称", 1)

98-8-20 :
打开 IE4 的设置窗口:
x= Shell("rundll32.exe shell32.dll,Control_RunDLL inetcpl.cpl") 到页首

004 不用 API ,直接调用关联的程序 98-6-06

有时候,我们会忘记简单的方法:
' Notepad:
Result = Shell("start.exe notepad", vbHide)
' E-mail:
nResult = Shell("start.exe mailto:kenj@163.net", vbHide)
' Internet:
nResult = Shell("start.exe http://vbtt.yeah.net", vbHide)
' Word
nResult = Shell("start.exe myfile.doc", vbHide)
'   Picture Viewer
nResult = Shell("start.exe myfile.jpg", vbHide)到页首

003 运行其他程序,并等待执行完毕

在程序中,我们可能要打开一个程序,如:Notepad,并要求在该程序结束后,才继续其他的操作。以下的代码完成这样的要求。
声明:
Const SYNCHRONIZE = &H100000
Const INFINITE = &HFFFFFFFF
Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
例子:(以 Notepad 为例)
Dim pId As Long, pHnd As Long
pId = Shell("Notepad", vbNormalFocus)
pHnd = OpenProcess(SYNCHRONIZE, 0, pId) ' 取得 Process Handle
If pHnd <> 0 Then
Call WaitForSingleObject(pHnd, INFINITE) ' 等待程序结束
Call CloseHandle(pHnd)
End If 到页首

002 打开和关闭其他应用

Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long
打开应用:
Private Sub Command1_Click()
  Shell "Calc.exe", vbNormalFocus
End Sub
关闭应用:
Private Sub Command2_Click()
Dim lpClassName As String
Dim lpCaption As String
Dim Handle As Long

Const NILL = 0&
Const WM_SYSCOMMAND = &H112
Const SC_CLOSE = &HF060&

lpClassName = "SciCalc"
lpCaption = "Calculator"
'* Determine the handle to the Calculator window.
Handle = FindWindow(lpClassName$, lpCaption$)
'* Post a message to Calc to end its existence.
Handle = SendMessage(Handle, WM_SYSCOMMAND, SC_CLOSE, NILL)
End Sub到页首

001 在最小化状态时提供提示

如果你的程序在最小化状态时执行任务,你可以通过改变图标的办法来传送信息。

建立一个form 包含一个 timer 和 imagelist.
设置 timer 的 Interval属性到 2000,
在 ImageList 控件中加入三个图标.
最后, 在 Timer 事件中加入下面的代码:

Private Sub Timer1_Timer()
Static ilmage As Integer
ilmage = ilmage + 1
If ilmage > 3 Then ilmage = 1
Me.Icon = ImageList1.ListImages(ilmage).Picture
EndSub到页首

 

知/的/更/多 做/的/更/好